package com.css.crm.dao;

import java.util.List;
import com.css.crm.vo.CustomerDiscountVo;

/**
 * Interface for DAO on table VP_CUST_DISC
 * 
 * @author AIS
 */
public interface CustomerDiscountDao extends BaseDao {

	/**
	 * Get all customer discount record by customer id
	 * 
	 * @param custId
	 *            Customer id to specific record to be retrieved
	 * @return List of customer discount record(s)
	 */
	List<CustomerDiscountVo> getCustomerDiscountByCustId(String custId);

	/**
	 * Get default customer discount record by customer id
	 * 
	 * @param custId
	 *            Customer id to specific record to be retrieved
	 * @return Default customer discount record
	 */
	CustomerDiscountVo getDefaultCustomerDiscount(String custId);

	/**
	 * Create customer discount record
	 * 
	 * @param customerDiscount
	 *            CustomerDiscountVo object
	 * @return Row count affected
	 */
	int insertCustomerDiscount(CustomerDiscountVo customerDiscount);

	/**
	 * Update customer discount record
	 * 
	 * @param customerDiscount
	 *            Updated CustomerDiscountVo object
	 * @return Row count affected
	 */
	int updateCustomerDiscountByPK(CustomerDiscountVo customerDiscount);

	/**
	 * Delete specific customer discount record
	 * 
	 * @param customerDiscount
	 *            Specific CustomerDiscountVo to be deleted
	 * @return Row count affected
	 */
	int deleteCustomerDiscountByPK(Long custDiscId);

	/**
	 * Delete customer discount record by customer id
	 * 
	 * @param custId
	 *            Customer id to specific record(s) to be deleted
	 * @return Row count affected
	 */
	int deleteCustomerDiscountByCustId(String custId);
}
